package com.sunrise.xdoc.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

import com.sunrise.xdoc.dto.KhuVucDTO;
import com.sunrise.xdoc.entity.config.Ban;
import com.sunrise.xdoc.entity.config.KhuVuc;
import com.sunrise.xdoc.service.AbstractService;
import com.sunrise.xdoc.service.IConfigService;

@Service("configService")
public class ConfigService extends AbstractService implements IConfigService {
	private static final long serialVersionUID = 3823911982194214619L;

	/**
	 * Nhóm bàn theo khu vực.
	 * 
	 * @param khuVucs
	 * @param bans
	 * @return
	 */
	private List<KhuVucDTO> groupBanTheoKhuVuc(List<KhuVuc> khuVucs, List<Ban> bans) {
		List<KhuVucDTO> khuVucDTOs = new ArrayList<>(khuVucs.size());
		for (KhuVuc kv : khuVucs) {
			KhuVucDTO khuVucDTO = new KhuVucDTO();
			khuVucDTO.setKhuVuc(kv);
			for (Ban b : bans) {
				if (kv.equals(b.getKhuVuc())) {
					khuVucDTO.getBans().add(b);
				}
			}
			khuVucDTOs.add(khuVucDTO);
		}
		return khuVucDTOs;
	}

	@Override
	public List<KhuVucDTO> getKhuVucDTOs() {
		List<KhuVuc> khuVucs = getDaoHelper().getDao(KhuVuc.class).loadAll();
		List<Ban> bans = getDaoHelper().getDao(Ban.class).loadAll();
		return groupBanTheoKhuVuc(khuVucs, bans);
	}
}
